//
//  UIImage+image.h
//  QNReuseTool
//
//  Created by rsh on 2019/10/15.
//  Copyright © 2019年 rsh. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIImage (image)

+(UIImage*)convertViewToImage:(UIView*)v;

//UIImage自适应尺寸
-(UIImage *)TransformtoSize:(CGSize)Newsize;

/** 输入图片和需要的尺寸获取缩略图 */
+ (UIImage*)thumbnailWithImage:(UIImage *)image size:(CGSize)size;

//从图片中按指定的位置大小截取图片的一部分
+(UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect;

/** 将图片进行旋转 */
+ (UIImage *)image:(UIImage *)image rotation:(UIImageOrientation)orientation;

+ (UIImage *)imageWithBorderWidth:(CGFloat)borderW borderColor:(UIColor *)color image:(UIImage *)image;

/** 加载最原始的图片，没有渲染 */
+ (instancetype)imageWithOriginalName:(NSString *)imageName;

/** 加载图片，只拉伸图片中心点 */
+ (instancetype)imageWithStretchableName:(NSString *)imageName;

/** 拉伸模式，拉伸图片某一区域 ,make是设置的区域*/
+ (instancetype)imageWithModeStretchName:(NSString *)imageName make:(UIEdgeInsets)make;

/**
 * 返回一张圆形图片
 */
- (instancetype)circleImage;

/**
 * 返回一张圆形图片
 */
+ (instancetype)circleImageNamed:(NSString *)name;

/** 通过颜色创建相同颜色的纯色图片 */
+ (UIImage *)imageWithColor:(UIColor *)color;
/** 通过颜色创建相同颜色的纯色图片 Size图片尺寸*/
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;









/**
 *  产生模糊图片
 *
 *  @param radius     模糊半径
 *  @param iterations 迭代次数
 *  @param tintColor  前景色
 *
 *  @return 图片
 */
- (UIImage *)blurredImageWithRadius:(CGFloat)radius iterations:(NSUInteger)iterations tintColor:(UIColor *)tintColor;
/**
 修改传入图片的透明度
 */
+ (UIImage *)imageByApplyingAlpha:(CGFloat)alpha  image:(UIImage*)image;
/**
 根据颜色和尺寸生成一张图片
 */
+(UIImage *) ImageWithColor: (UIColor *) color frame:(CGRect)aFrame;
/**
 修改传入图片的尺寸
 */
+(UIImage*) changeSizeByOriginImage:(UIImage *)image scaleToSize:(CGSize)size;
/**
 *  保存图片在沙盒，仅仅支持PNG、JPG、JPEG
 *
 *  @param image         传入的图片
 *  @param imgName       图片的命名
 *  @param imgType       图片格式
 *  @param directoryPath 图片存放的路径
 */
+(void)saveImg:(UIImage *)image withImageName:(NSString *)imgName imgType:(NSString *)imgType inDirectory:(NSString *)directoryPath;
/**
 *  获取图片上指定点上的颜色
 *
 *  @param point 图片上的一点
 *
 *  @return 颜色
 */
-(UIColor *)getImageColorOnPoint:(CGPoint) point;
/**
 *  绘制一张图片，图片是由一个圆环包着的，
 *
 *  @param color   圆环的颜色
 *  @param imgSize 图片的size
 *
 *  @return 图片
 */
-(UIImage *)drawCircularIconWithColor:(UIColor *)color sizeOfImg:(CGSize)imgSize;
/**
 *  返回一张图片中颜色最多的那种颜色
 *
 *  @return color
 */
-(UIColor*)getMostColor;
/**
 *  根据图片绘制一张带圆环的图片
 *
 *  @param size 绘制之后图片的大小
 *
 *  @return 图片
 */
-(UIImage *)headerWithTorusBySzie:(CGSize)size;

/**
 绘制带有圆弧的图片
 */
- (UIImage *)drawCircularIconWithSize:(CGSize )imgSize withRadius:(CGFloat)radius;




/**
 读取私有库中图片资源
 @return 图片
 */
+ (instancetype)wg_imgWithName:(NSString *)name bundle:(NSString *)bundleName targetClass:(Class)targetClass;


/**
 读取私有库中图片资源
 
 @param className 私有库中Class类名, 这个class不能是Category的class
 @param podName 私有库名称 s.name
 @param imgName 图片名称
 @return 图片
 */
+ (nullable UIImage *)gp_imgWithClassName:(nullable NSString  *)className podName:(nullable NSString *)podName imgName:(nullable NSString *)imgName;
+ (nullable UIImage *)gp_imgWithCls:(nullable Class)cls podName:(nullable NSString *)podName imgName:(nullable NSString *)imgName;


@end
